package com.chance.cc.crawler.development.bootstrap.bbs1;

import com.alibaba.fastjson.JSON;
import com.chance.cc.crawler.core.CrawlerEnum;
import com.chance.cc.crawler.core.downloader.HttpConfig;
import com.chance.cc.crawler.core.filter.FilterUtils;
import com.chance.cc.crawler.core.record.CrawlerRecord;
import com.chance.cc.crawler.core.record.CrawlerRequestRecord;
import com.chance.cc.crawler.development.controller.DevCrawlerController;
import org.junit.Test;

import java.text.SimpleDateFormat;
import java.util.Date;

public class BBS2 {
    public final static Integer Time = 7;
    public static void main(String[] args) {
        String domain = "bbs2";

        CrawlerRequestRecord requestRecord = CrawlerRequestRecord.builder()//构造一个Record
                // 构建crawlerRequestRecord的属性值  默认的传入当前采集时间  当前调度时间 默认httpUrl有值 自己定制化  默认needParsed==turn解析页面
                //  第二个参数传入为turnPage时代表翻页请求   传入turnPageItem时 代表解析此页面页面
                .startPageRequest(domain, CrawlerEnum.CrawlerRequestType.turnPage)//这个方法帮我们准备了一些基础值
                //  找到定义脚本
                .domain(domain)//域  作用的范围
                //  自定义化  想要解析的链接 下载  CrawlerRecord是CrawlerRequestRecord的父类
                .httpUrl("http://bbs1.people.com.cn/board/1/1_1.html")
                //做页面 链接唯一标识符
                .recordKey("http://bbs1.people.com.cn/board/1/1_1.html")
                //优先级设定   request个性化配置  CrawlerRecord httpConfig > domainConfig httpConfig
                .httpConfig(HttpConfig.me(domain))
                //根据需要进行过滤条件的设定   DataRange根据日期   Key 防止重复
                .filter(CrawlerEnum.CrawlerRecordFilter.keyOrDateRange)//定义过滤的方式
                //添加 Record的属性中  domain  文件过滤   内存形式   无序的集合方式   设置过滤属性是以key过滤
                .addFilterInfo(FilterUtils.memoryFilterKeyInfo(domain))//定义过滤信息
                //设置日期范围
                .addFilterInfo(FilterUtils.dateRangeFilterInfo(24*7,null))
                //设置当前的发布时间
                .releaseTime(System.currentTimeMillis())
                .build();
        requestRecord.tagsCreator().bizTags().addCustomKV("domain",domain);//设置清洗内容的标识
        requestRecord.tagsCreator().bizTags().addDomain(domain);

        //创建 评论信息的过滤条件
        CrawlerRecord filterCrawlerRecord =  new CrawlerRecord();
        filterCrawlerRecord.setFilter(CrawlerEnum.CrawlerRecordFilter.dateRange);
        filterCrawlerRecord.addFilterInfo(FilterUtils.dateRangeFilterInfo(24*2,null));
        //以json转换保证数据传输的完整性
        requestRecord.tagsCreator().bizTags().addCustomKV("comment_record_filter_info", JSON.toJSONString(filterCrawlerRecord));
        DevCrawlerController.builder()
                .triggerInfo(domain,domain,System.currentTimeMillis(),domain)//做 运行时 标识
                .crawlerRequestQueue(DevCrawlerController.devRequestQueue(domain))//创建record队列
                .consoleResultPipeline() //控制台输出
                .fileResultPipeline("D:\\chance\\log\\text.log",true) //文件输出
                .requestRecord(requestRecord)
                .build("com.chance.cc.crawler.development.scripts.bbs1")
                .start();

    }

    @Test
    public void test1(){
        Date date=new Date();
        SimpleDateFormat format = new SimpleDateFormat("yyyy-MM-dd hh:mm");
        String format1 = format.format(date);
        long l = System.currentTimeMillis();
        System.out.println(l);

       String t1 = "45分钟前";
       String t2 = "2小时前";
       String t3 = "昨天 13:22";
       String t4 = "前天 22:27";
       String t5 = "3天前";
       int i1 = t1.indexOf("分钟");
        int i2 = t2.indexOf("小时");
       int i3 = t3.indexOf("昨天");
       int i4 = t4.indexOf("前天");
       int i5 = t5.indexOf("天前");


        System.out.println(i1);
        System.out.println(i2);
        System.out.println(i3);
        System.out.println(i4);
        System.out.println(i5);
    }
}
